import java.util.HashMap;

/*
    387. 字符串中的第一个唯一字符
    重点：像这种有限字符的，可以使用数组来统计字符个数，会比哈希快上不少
 */

public class FirstUniqChar {

    public static void main(String[] args) {
        FirstUniqChar firstUniqChar = new FirstUniqChar();
        System.out.println(firstUniqChar.firstUniqChar("leetcode"));
    }

    public int firstUniqChar(String s) {
        if (s.length() == 1) return 0;
        HashMap<Character, Integer> map = new HashMap<>();
        for (int i = 0; i < s.length(); i++) {
            char c = s.charAt(i);
            map.put(c, map.getOrDefault(c, 0) + 1);
        }
        for (int i = 0; i < s.length(); i++) {
            if (map.get(s.charAt(i)) == 1) return i;
        }
        return -1;
    }
}
